home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2006 May / PCpro_2006_05.ISO / files / mobile / fma-2.0-stable-setup.exe / {app} / source / uChooseLink.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2004-06-19  |  2.6 KB  |  101 lines

  1. unit uChooseLink;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, uContactSync, ComCtrls, ExtCtrls, TntStdCtrls,
  8.   TntComCtrls;
  9.  
  10. type
  11.   TfrmChooseLink = class(TForm)
  12.     Label1: TLabel;
  13.     Label2: TLabel;
  14.     Label3: TLabel;
  15.     btnOk: TButton;
  16.     btnAsNew: TButton;
  17.     Label4: TLabel;
  18.     Image1: TImage;
  19.     btnAll: TButton;
  20.     btnCancel: TButton;
  21.     edtFullName: TTntEdit;
  22.     lvContacts: TTntListView;
  23.     procedure FormCreate(Sender: TObject);
  24.     procedure lvContactsSelectItem(Sender: TObject; Item: TListItem;
  25.       Selected: Boolean);
  26.     procedure FormShow(Sender: TObject);
  27.   private
  28.     FContact: TContact;
  29.     FPossibleLinks: TPossibleLinks;
  30.     procedure SetContact(const Value: TContact);
  31.     procedure SetPossibleLinks(const Value: TPossibleLinks);
  32.   public
  33.     property Contact: TContact read FContact write SetContact;
  34.     property PossibleLinks: TPossibleLinks read FPossibleLinks write SetPossibleLinks;
  35.     function OtherContact(GetDefaultOne: boolean = False): TContact;
  36.   end;
  37.  
  38. implementation
  39.  
  40. uses Unit1;
  41.  
  42. {$R *.dfm}
  43.  
  44. { TfrmChooseLink }
  45.  
  46. function TfrmChooseLink.OtherContact(GetDefaultOne: boolean): TContact;
  47. begin
  48.   Result := nil;
  49.   if GetDefaultOne and (lvContacts.Items.Count <> 0) then
  50.     lvContacts.Selected := lvContacts.Items[0];
  51.   if lvContacts.Selected <> nil then
  52.     Result := FPossibleLinks[lvContacts.Selected.Index].Contact;
  53. end;
  54.  
  55. procedure TfrmChooseLink.SetContact(const Value: TContact);
  56. begin
  57.   FContact := Value;
  58.   edtFullName.Text := FContact.FullName;
  59. end;
  60.  
  61. procedure TfrmChooseLink.SetPossibleLinks(const Value: TPossibleLinks);
  62. var I: Integer;
  63. begin
  64.   FPossibleLinks := Value;
  65.   lvContacts.Items.BeginUpdate;
  66.   try
  67.     lvContacts.Items.Clear;
  68.     for I := 0 to FPossibleLinks.Count - 1 do
  69.       with lvContacts.Items.Add do begin
  70.         Caption := FPossibleLinks[I].Contact.FullName;
  71.         ImageIndex := 20;
  72.       end;
  73.   finally
  74.     lvContacts.Items.EndUpdate;
  75.   end;
  76. end;
  77.  
  78. procedure TfrmChooseLink.FormCreate(Sender: TObject);
  79. begin
  80.   Label2.Font.Style := Label2.Font.Style + [fsBold];
  81.   Label3.Font.Style := Label3.Font.Style + [fsBold];
  82. end;
  83.  
  84. procedure TfrmChooseLink.lvContactsSelectItem(Sender: TObject;
  85.   Item: TListItem; Selected: Boolean);
  86. begin
  87.   btnOk.Enabled := Selected;
  88.   btnOk.Default := btnOk.Enabled;
  89. end;
  90.  
  91. procedure TfrmChooseLink.FormShow(Sender: TObject);
  92. begin
  93.   lvContacts.SetFocus;
  94.   if lvContacts.Items.Count <> 0 then begin
  95.     lvContacts.Selected := lvContacts.Items[0];
  96.     lvContactsSelectItem(lvContacts,lvContacts.Selected,True);
  97.   end;
  98. end;
  99.  
  100. end.
  101.